const { path, fs, getMatchingFolderPath } = require('../scripts/common.js');
const { exec } = require('child_process');
const { shell } = require('electron');

// 小助手相关功能
document.getElementById('assistantLabel').onclick = async () => {
    const fileContent = document.getElementById('fileContent');
    
    // 检查第三区域是否为空
    if (fileContent.innerHTML.trim() !== '') {
        // 如果第三区域不为空，清空第三区域、第四区域和下方配方区
        fileContent.innerHTML = '';
        document.querySelector('.card-4').innerHTML = '';
        document.querySelector('.pink-card').innerHTML = '';
    } else {
        // 如果第三区域为空，只清空下方配方区
        document.querySelector('.pink-card').innerHTML = '';
    }

    const fileList = document.getElementById('fileList');
    try {
        const matchingFolderPath = getMatchingFolderPath();
        if (matchingFolderPath) {
            const assistantPath = path.join(matchingFolderPath, 'assistant.md');
            if (fs.existsSync(assistantPath)) {
                const content = fs.readFileSync(assistantPath, 'utf8');
                
                // 解析markdown链接格式: [title](path)
                const links = content.match(/\[([^\]]+)\]\(([^)]+)\)/g) || [];
                
                if (links.length === 0) {
                    fileList.innerHTML = '<div class="file-item">没有找到链接</div>';
                    return;
                }

                fileList.innerHTML = '';
                links.forEach(link => {
                    const [, title, filePath] = link.match(/\[([^\]]+)\]\(([^)]+)\)/);
                    const div = document.createElement('div');
                    div.className = 'file-item';
                    div.textContent = title;
                    
                    div.onclick = () => {
                        try {
                            const ext = path.extname(filePath).toLowerCase();
                            
                            // 处理可执行文件
                            if (ext === '.exe' || ext === '.bat') {
                                exec(filePath, (error) => {
                                    if (error) {
                                        console.error('Error executing file:', error);
                                        document.getElementById('fileContent').innerHTML = '执行文件失败';
                                    }
                                });
                                return;
                            }
                            
                            // 处理网页链接
                            if (filePath.startsWith('http://') || filePath.startsWith('https://')) {
                                shell.openExternal(filePath);
                                return;
                            }
                            
                            // 处理HTML文件
                            if (ext === '.html') {
                                shell.openPath(filePath);
                                return;
                            }
                            
                            // 处理代码文件，只更新第三区域
                            if (['.json', '.js', '.txt', '.css', '.md'].includes(ext)) {
                                const linkContent = fs.readFileSync(filePath, 'utf8');
                                let displayContent = linkContent;
                                
                                // 如果是JSON，尝试格式化
                                if (ext === '.json') {
                                    try {
                                        displayContent = formatJsonDisplay(JSON.parse(linkContent));
                                    } catch (e) {
                                        console.warn('Failed to parse JSON, displaying as text');
                                    }
                                }
                                
                                document.getElementById('fileContent').innerHTML = `<pre>${displayContent}</pre>`;
                                
                                // 更新选中状态
                                document.querySelectorAll('.file-item').forEach(item => {
                                    item.classList.remove('selected');
                                });
                                div.classList.add('selected');
                                return;
                            }
                            
                            // 其他类型的文件，使用系统默认程序打开
                            shell.openPath(filePath);
                            
                        } catch (error) {
                            console.error('Error handling file:', error);
                            document.getElementById('fileContent').innerHTML = '处理文件失败：' + error.message;
                        }
                    };
                    
                    fileList.appendChild(div);
                });
            } else {
                fileList.innerHTML = '<div class="file-item">assistant.md文件不存在</div>';
            }
        } else {
            fileList.innerHTML = '<div class="file-item">未找到匹配的文件夹</div>';
        }
    } catch (error) {
        console.error('Error:', error);
        fileList.innerHTML = '读取assistant.md失败：' + error.message;
    }
};

// 导出需要的函数
module.exports = {}; 